﻿//Copyright (c) Microsoft Corporation
//
//All rights reserved. 
//
//Licensed under the Apache License, Version 2.0 (the ""License""); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 
//THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT. 
//
//See the Apache Version 2.0 License for specific language governing permissions and limitations under the License.
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.ServiceModel.Description;
using SQLite;

namespace TED.WindowsAzure.Unplugged.Mobile.Tests.Helpers
{
    public class SQLiteTableHelper<T> where T : new()
    {
        private string _dbPath;

        public SQLiteTableHelper()
        {
            _dbPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "blobinfo.sqlite");
        }

        public int GetCount()
        {
            using (SQLiteConnection connection = new SQLiteConnection(_dbPath))
            {
                return connection.Table<T>().Count();
            }
        }

        public IEnumerable<T> GetItems()
        {
            using (SQLiteConnection connection = new SQLiteConnection(_dbPath))
            {
                return connection.Table<T>().ToList();
            }
        }
    }
}